Revision History
================

This describes the new features that have been introduced into the
releases of ESL since ESL 7.0.


Features introduced from version 8.2.5 to version 8.3.0 - 2023-03-27
--------------------------------------------------------------------
- ESL-Studio - the graphical integrated development environment introduced.


Features introduced from version 8.2.4 to version 8.2.5 - 2022-05-29
--------------------------------------------------------------------
- Windows: XISE program to convert ISE graphical applications to an XML
  format (this will allow importing ISE applications into ESL-Studio).
- Linux: No longer support 32bit (x86).
- Improve ESL Encryption. Note, this is no longer backward compatible with
  the version introduced for v8.2.1.
- Improvements to plotting including allowing more plots and more variables
  per plot.


Features introduced from version 8.2.3 to version 8.2.4 - 2020-06-11
--------------------------------------------------------------------
- Improve plotting programs (include plotting_output).
- Windows installation via an executable, supports installing x64 or x86
  ESL programs depending on the installation platform.
- Windows: Fortran & gcc C++ now uses MinGW-64 (no longer MinGW (i.e. 32bit).
- Have C++ builds support 32bit generation on x64 platforms.
- Add ESL-SEC, Simulation Execution & Control, and ESL-Displays programs.
- Windows: Have ISE run simulations via ESL-SEC in place of the built-in
  control panel.


Features introduced from version 8.2.2 to version 8.2.3 - 2017-12-14
--------------------------------------------------------------------
- Remote segments can be launched via the ssh protocol as an alternative
  to the rsh protocol.
- Remote segments can be launched via a custom 'ESL' protocol, which is
  handled by an ESL Launcher service program.


Features introduced from version 8.2.1 to version 8.2.2 - 2016-09-30
--------------------------------------------------------------------
- Non-build options added to esl
    - `esl -v` - to show the version (of ESL Compiler)
    - `esl -u` - to check for ESL updates
        - makes use of a checkeslupdates program
        - Windows: can be invoked from ISE menu option
- ESLLIB can be a path of directories to be searched when include library files.
- Compiler support to 'authorise' ESL encrypted code blocks.
    - This is for use with add-in ESL libraries requiring authorisation.
    - Note: This is not supported in ESL-Lite.
- Windows: MSI installation automatically upgrades a previous installation.
- The ESL Encryption feature is now supported in ESL-Lite (but not 'authorise'),
  to support contributed ESL code.


Features introduced from version 8.2.0 to version 8.2.1 - 2015-03-14
--------------------------------------------------------------------
- Windows: ISE toolboxes may have help URL for an element or submodel, invoked
  via its shortcut menu.
- Windows: ISE external text editor can be specified in the Options.
- ESL Encryption feature.
    - The ESL-Pro compiler checks for and processes encrypted blocks in ESL
      source code.
    - This is not supported in ESL-Lite.
    - ISIM can supply an ESL Encryption program to those providing contributed
      ESL code (e.g. submodels/toolboxes).
- Windows: ISE menu options to Edit/Reset the experiment for an ESL MODEL.
- Windows: ISE model name independent of saved .ise file name.
- Windows: ISE control panel button 'End Simulation' to run to the end and exit.
- Windows: ISE examples revised.

Features introduced from version 8.1.3 to version 8.2.0 - 2014-09-07
--------------------------------------------------------------------
- There are two variants: ESL-Pro and ESL-Lite:
    - ESL-Pro is the full version - the compiler requires software authorisation.
    - ESL-Lite is a cut down version - there is no software authorisation required;
        - supports a limited number of differential equations (states);
        - there is no support for C++/Fortran builds.
- Windows: MSI installation.
- Linux: 'run' self extracting archive installation.
- Windows: C++ (in addition to Visual Studio) supports g++ from MinGW
  (i.e. no longer uses Salford C++).
- Windows: 64bit libraries to support Visual C++ 64bit builds.
- Windows: Fortran builds use gfortran (std2003) from MinGW
  (i.e. no longer uses Salford F77).
- Windows: removal of DLL support for Visual Basic;
    - removal of Visual Basic and JScript examples.
- Installed Help restructured with links to the online documentation.
- Windows: ISE ESL compilation output shown in message area.
- New ESL library components (polyroots.esl & polyval.esl).

Features introduced from version 8.1.2 to version 8.1.3 - 2012-04-29
--------------------------------------------------------------------
- The Isim.Esl.dll (for the ESLGEN command - `clr` option) is built locally
  when first needed (so as to conform with the current .NET Framework level).
- For textual submodels in ISE, CONSTANT input arguments become attributes
  of the ISE entity (not input ports).
- ISE help facility uses HTML Help (in place of WinHelp which, since Windows
  Vista, is no longer available by default).

Features introduced from version 8.1.1 to version 8.1.2 - 2010-08-05
--------------------------------------------------------------------
- The ESLGEN command extended to support numerical ESL arrays/matrices.
- Linearisation/optimisation supported via C++ translation.

Features introduced from version 8.1.0 to version 8.1.1 - 2010-03-03
--------------------------------------------------------------------
- Added the convertDisplayFile program to plot or convert an ESL display file
  to another format.
- Changes in the C++ description and examples due to allowing the same
  embedded segment to be used twice in a C++ program. This feature extends to
  programs developed for .NET, COM, etc, using the ESLGEN command.

Features introduced from version 8.0.1 to version 8.1.0 - 2009-05-25
--------------------------------------------------------
- Added to the ESLGEN command the ability to create a .NET assembly from an
  embedded segment.

Features introduced from version 8.0 to version 8.0.1 - 2004-06-11
------------------------------------------------------------------
- New simulation element - Advanced PID Controller (PID1).
- New simulation element - Raise x to power y (x^y).
- Improved portability - Modifications to dialogues where external submodels
  are specified (Toolbox, Submodel Manager, Submodel icon shortcut menu) allow
  text entry and use of ESLISEHOME environment variable. This provides a means of
  writing applications using external submodels that may be transfered between
  computers with different directory structures.
- Viewing graphical submodel ESL code - An additional button on the submodel
  manager allows ESL code generated from graphical submodels to be viewed in the
  text editor. The code may be saved for subsequent reuse as external submodels
  in different ISE applications.

Features introduced from version 7.0 to version 8.0 - 2003-05-22
----------------------------------------------------------------
- Ability to call remote segments from an embedded segment.
- ESLGEN utility to create DLL's and COM/ActiveX components from an embedded
  segment - provides connectivity between ESL models and other applications, for
  example Microsoft Visual Basic.
- The Integrated Simulation Environment (ISE) parameter declarations extended
  to include Constants and Variables.
- Creation and access of ESL Packages (including arrays).
- Ability to set simulation parameters (cint, tfin etc) during editing phase
- option to save dynamically changed simulation parameters with application.
- Creation of Embedded Segment code from an ESL model.
- Creation of Remote Segment code from an ESL model or submodel.
- New canvas shortcut menu which includes an Insert option for simulation
  element placement (as an alternative to dragging elements from the palette).
- Simulation element output termination shortcut menu (replaces double-click)
  includes check box to make output variable attributable (accessible as a
  simulation element attribute).
- New Attribute option on submodel shortcut menu to name submodel calls.
  Simulation element shortcut menu.
- Simulation elements' attributes extended to include choice of: Constant,
  Parameter, Package variable, Attributable output variable, Reserved package
  variable.
- Build only option on Simulate menu - used, for example, for embedded and
  remote segment code creation.
- Hot keys - DEL, Ctrl-z/y, Ctrl-x, c, v active during graphical editing.
- Rectilinear routing options for simulation element interconnection.
- Element and submodel toolbox configuration options - you can change the
  appearance of a particular group of simulation elements.
- Bump scrolling when using rubber band selection.
- Extensive configuration dialogue - you can specify canvas colour,
  simulation element size, shape, colour, connection line width, node appearance
  etc.
- Additional simulation elements (Summer3, Tan, Asin, Acos, Atan, Atan2,
  Logical Constant, PID Control, Function Generator).
- New simulation element shapes.
- Toolbox wizard - for easy customisation of the palette.
- Improved simulation element select and drag speed.